package com.wenan.data
{
	
	public interface IDataLayer
	{
		
		/**
		 * 获取验证码。周国庆负责。
		 * 
		 * @param resultHandler 成功的事件处理过程。event.result为UserInfo。
		 * @param faultHandler 失败的时间处理过程
		 */
		function getVerificationCode(resultHandler:Function, faultHandler:Function = null):void;
		
		/**
		 * 登陆判断。周国庆负责。
		 * 
		 * @param userName 用户名
		 * @param password 密码
		 * @param checkCode 校验码
		 * @param resultHandler 成功的事件处理过程。event.result为UserInfo。
		 * @param faultHandler 失败的时间处理过程
		 */
		function checkLogin(userName:String, password:String, checkCode:String,
							resultHandler:Function, faultHandler:Function = null):void;
		
		/**
		 * 修改密码。周国庆负责。
		 * 
		 * @param userName 用户名
		 * @param oldPassword 旧密码
		 * @param newPassword 新密码
		 * @param resultHandler 成功的事件处理过程。event.result为Boolean。1：成功，0：失败。
		 * @param faultHandler 失败的时间处理过程
		 */
		function changePassword(userName:String, oldPassword:String, newPassword:String,
								resultHandler:Function, faultHandler:Function = null):void;
		
		/**
		 * 获取用户信息。周国庆负责。
		 * 
		 * @param userId 用户编号
		 * @param resultHandler 成功的事件处理过程。event.result为Boolean。1：成功，0：失败。
		 * @param faultHandler 失败的时间处理过程
		 */
		function getUserInfo(userId:String, resultHandler:Function, faultHandler:Function = null):void;
		
		/**
		 * 保存主页信息。周国庆负责。
		 * 
		 * @param userId 用户编号
		 * @param pageInfo 页面信息
		 * @param resultHandler 成功的事件处理过程。event.result为Boolean。1：成功，0：失败。
		 * @param faultHandler 失败的时间处理过程
		 */
		function saveHomePageInfo(userId:String, appkey:String, pageInfo:PageInfo, pageInofs:Array,
								  resultHandler:Function = null, 
								  faultHandler:Function = null):void;
		
		/**
		 * 获取主页信息。周国庆负责。
		 * 
		 * @param userId 用户编号
		 * @param resultHandler 成功的事件处理过程。event.result为PageInfo。
		 * @param faultHandler 失败的时间处理过程
		 */
		function getHomePageInfo(userId:String,appkey:String,resultHandler:Function, 
								 faultHandler:Function = null):void;
		
		/**
		 * 保存浏览页面信息。周国庆负责。
		 * 
		 * @param userId 用户编号
		 * @param pageInfo 页面信息
		 * @param resultHandler 成功的事件处理过程。event.result为Boolean。1：成功，0：失败。
		 * @param faultHandler 失败的时间处理过程
		 */
		function saveBrowsePageInfo(userId:String,appkey:String, pageInfo:PageInfo, pageInfos:Array,
									resultHandler:Function = null, 
									faultHandler:Function = null):void;
		
		/**
		 * 取得浏览页面信息。周国庆负责。
		 * 
		 * @param userId 用户编号
		 * @param count 提取数量
		 * @param resultHandler 成功的事件处理过程。event.result为ArrayCollection，它的每个项目都是一个PageInfo对象。
		 * @param faultHandler 失败的时间处理过程
		 */
		function getBrowsePageInfos(userId:String, appkey:String, count:int, 
									resultHandler:Function, 
									faultHandler:Function = null):void;
		
		/**
		 * 用户收藏。周国庆负责。
		 * @param userId 用户编号
		 * @param appkey 
		 * @param pageTitle 用户编号
		 * @param pageInfo 
		 * @param pageInfos 
		 * @param resultHandler 成功的事件处理过程。
		 * @param faultHandler 失败的时间处理过程
		 * 
		 */
		function setFavorite(userId:String,appkey:String,pageTitle:String,pageInfo:PageInfo,pageInfos:Array,
									  resultHandler:Function = null, 
									  faultHandler:Function = null):void;
		
		/**
		 * 获取用户收藏。周国庆负责。
		 * 
		 * @param userId 用户编号
		 * @param appkey 
		 * @param count 
		 * @param resultHandler 成功的事件处理过程。
		 * @param faultHandler 失败的时间处理过程
		 */
		function getFavorites(userId:String, appkey:String, count:int, 
											 resultHandler:Function, 
											 faultHandler:Function = null):void
	
		/**
		 * 删除用户收藏。周国庆负责。
		 * 
		 * @param userId 用户编号
		 * @param appkey 
		 * @param pageId 
		 * @param resultHandler 成功的事件处理过程。
		 * @param faultHandler 失败的时间处理过程
		 */
		function deleteFavorite(userId:String, appkey:String, pageId:String, 
									   resultHandler:Function, 
									   faultHandler:Function = null):void
		/**
		 * 取得所有省份。(陈凯乐，已废弃,全国导航图数据的获取整合进接口getMapInfo）
		 * 
		 * @param resultHandler 成功的事件处理过程。event.result为ArrayCollection，它的每个项目都是一个ProvinceInfo对象。
		 * @param faultHandler 失败的时间处理过程
		 */
		function getProvinceList(resultHandler:Function, faultHandler:Function = null):void;
		
		
		/**
		 * 获取全国地图上数据信息（陈凯乐，以实现）
		 * 
		 * @param resultHandler 成功的事件处理过程。event.result为ArrayCollection
		 * @param faultHandler 失败的时间处理过程
		 * */
		function getMapInfo(resultHandler:Function,faultHandler:Function=null):void;
		
		/**
		 * 取得所有城市。(陈凯乐，已废弃,全国导航图数据的获取整合进接口getMapInfo）
		 * 
		 * @param resultHandler 成功的事件处理过程。event.result为ArrayCollection，它的每个项目都是一个CityInfo对象。
		 * @param faultHandler 失败的时间处理过程
		 */
		function getCityList(resultHandler:Function, faultHandler:Function = null):void;
		
		/**
		 * 取得某个城市的所有广场。(陈凯乐，已废弃,全国导航图数据的获取整合进接口getMapInfo）
		 * 
		 * @param cityId 城市编号。若为空，则获取所有广场。
		 * @param resultHandler 成功的事件处理过程。event.result为ArrayCollection，它的每个项目都是一个SquareInfo对象。
		 * @param faultHandler 失败的时间处理过程
		 */
		function getSquareInfoList(cityId:String, resultHandler:Function, faultHandler:Function = null):void;
		
		/**
		 * 取得某个广场的所有楼层信息。
		 * 
		 * @param squareId 广场编号。
		 * @param resultHandler 成功的事件处理过程。event.result为ArrayCollection，它的每个项目都是一个FloorInfo对象。
		 * @param faultHandler 失败的事件处理过程
		 */
		function getFloorInfoList(squareId:String, resultHandler:Function, faultHandler:Function = null):void;
		
		/**
		 * 获取默认指标接口
		 * @param type 类型，query：查询，real-time：实时，playback：回放
		 * @param resultHandler 成功的事件处理过程。event.result为ArrayCollection。
		 * @param faultHandler 失败的事件处理过程
		 * date:'2012-03-29'  //时间
		 * datetype:'day' //日期类型
		 * //指标
		 * data:[	
		 * {name:'进人数' ,//指标名称
		 * key:'incount', //指标KEY
		 * selected:true //是否默认查询}，
		 * {name:'出人数',key:'outcount',selected:false}，
		 * ]
		 * dataurl：‘’//获取数据的接口
		 * isquery：‘true’ //是否默认查询
		 *  
		 * */
		function getIndexData(type:String,resultHandler:Function, faultHandler:Function = null):void;
			
		/**
		 * 取得某个楼层的店铺信息列表。(已废弃)
		 * 
		 * @param squareId 广场编号。
		 * @param floorNo 楼层序号。若为空，则获取广场的所有店铺。
		 * @param resultHandler 成功的事件处理过程。event.result为ArrayCollection，它的每个项目都是一个ShopInfo对象。
		 * @param faultHandler 失败的时间处理过程
		 *
		 */
		function getShopInfoList(squareId:String, floorNo:int, resultHandler:Function, faultHandler:Function = null):void;
		
		/**
		 * 取得某个楼层的店铺信息列表.
		 * 
		 * @param floorid 楼层编号。
		 * @param date  时间，日：2012-03-29，月：2012-03。
		 * @param datetype 时间类型
		 * @param data	 要查询的指标
		 * @param type	 类型，query：查询，real-time：实时，playback：回放
		 * @param resultHandler 成功的事件处理过程。event.result为ArrayCollection，它的每个项目都是一个ShopInfo对象。
		 * @param faultHandler 失败的时间处理过程
		 */
		function getAllShopInfo(dataurl:String,floorid:String, date:String, datetype:String,data:String,
								resultHandler:Function, faultHandler:Function = null):void;
		
		/**
		 * 获取全国视图中的集团摘要信息
		 * 
		 * @param resultHandler 成功的事件处理过程。event.result为GroupInfo。
		 * @param faultHandler 失败的时间处理过程
		 */
		function getCompanyInfo(resultHandler:Function, faultHandler:Function = null):void;
		
		/**
		 * 取得广场信息。
		 * 
		 * @param squareId 资源编号。
		 * @param resultHandler 成功的事件处理过程。event.result为SquareInfo。
		 * @param faultHandler 失败的时间处理过程
		 */
		function getResourceInfo(resid:String,isInit:Boolean,isDistroy:Boolean, resultHandler:Function, faultHandler:Function = null):void;
		/**
		 * 取得楼层信息。
		 * 
		 * @param squareId 广场编号。
		 * @param floorNo 楼层序号。
		 * @param resultHandler 成功的事件处理过程。event.result为FloorInfo。
		 * @param faultHandler 失败的时间处理过程
		 */
		function getFloorInfo(squareId:String, floorNo:int, resultHandler:Function, faultHandler:Function = null):void;
		
		
		/**
		 * 取得店铺排名信息。
		 * 
		 * @param shopId 店铺编号。
		 * @param resultHandler 成功的事件处理过程。event.result为ShopInfo。
		 * @param faultHandler 失败的时间处理过程
		 */
		function getShopRanking(shopId:String,isInit:Boolean,isDistroy:Boolean, resultHandler:Function, faultHandler:Function = null):void;
		
		/**
		 * 取得店铺多边形列表。
		 * 
		 * @param squareId 广场编号。
		 * @param floorNo 楼层序号。
		 * @param resultHandler 成功的事件处理过程。event.result为ShopPolygon。
		 * @param faultHandler 失败的时间处理过程
		 */
		function getShopPolygonList(squareId:String, floorNo:int, resultHandler:Function, faultHandler:Function = null):void;
		
		/**
		 * 获取主力店列表 
		 */
		function getMainShopList(squareId:String,mainShopUnionId:String,resultHandler:Function,faultHandler:Function = null):void;
		
		/**
		 * 获取集团中主力店商家列表
		 */
		function getMainShopUnion(resultHandler:Function,faultHandler:Function = null):void;
		
		/**
		 * 取得集团统计信息。
		 * 
		 * @param resultHandler 成功的事件处理过程。event.result为GroupStatisticsInfo。
		 * @param faultHandler 失败的时间处理过程
		 */
		function getGroupStatisticsInfo(resultHandler:Function, faultHandler:Function = null):void;
		
		/**
		 * 取得广场统计信息。
		 * 
		 * @param squareId 广场编号。
		 * @param resultHandler 成功的事件处理过程。event.result为SquareStatisticsInfo。
		 * @param faultHandler 失败的时间处理过程
		 */
		function getSquareStatisticsInfo(squareId:String,isInit:Boolean,isDistroy:Boolean, resultHandler:Function, faultHandler:Function = null):void;
		
		/**
		 * 取得楼层统计信息。
		 * 
		 * @param squareId 广场编号。
		 * @param floorNo 楼层序号。
		 * @param resultHandler 成功的事件处理过程。event.result为FloorStatisticsInfo。
		 * @param faultHandler 失败的时间处理过程
		 */
		function getFloorStatisticsInfo(squareId:String, floorNo:String, resultHandler:Function, faultHandler:Function = null):void;
		
		/**
		 * 取得店铺统计信息。
		 * 
		 * @param shopId 店铺编号。
		 * @param resultHandler 成功的事件处理过程。event.result为ShopStatisticsInfo。
		 * @param faultHandler 失败的时间处理过程
		 */
		function getShopStatisticsInfo(shopId:String,isInit:Boolean,isDistroy:Boolean, resultHandler:Function, faultHandler:Function = null):void;
		
		function getMainShopStatisticsInfo(mainShopId:String,isInit:Boolean,isDistroy:Boolean, resultHandler:Function, faultHandler:Function = null):void;
		
		/**
		 * 取得楼层内所有店铺统计信息。
		 * 
		 * @param squareId 广场编号。
		 * @param floorNo 楼层序号。
		 * @param resultHandler 成功的事件处理过程。event.result为ArrayCollection，它的每个项目都是一个ShopStatisticsInfo对象。
		 * @param faultHandler 失败的时间处理过程
		 */
		function getShopStatisticsInfoList(squareId:String, floorNo:String, resultHandler:Function, faultHandler:Function = null):void;
		
		/**
		 * 取得统计表指标。
		 * 
		 * @param fileName 文件名称。Org:广场；Shop：店铺；MainShop：主力店铺；Gate：出入口。
		 * @param resultHandler 成功的事件处理过程。event.result为ArrayCollection，它的每个项目都是一个ShopStatisticsInfo对象。
		 * @param faultHandler 失败的时间处理过程
		 */
		function getStatisticsReportIndexList(fileName:String, resultHandler:Function, faultHandler:Function = null):void;
		
		/**
		 * 取得统计表数据。
		 * 
		 * @param reportType 报表类型。可选值为：表格、柱状图、簇状图、线状图、散点图。
		 * @param filename 文件类型。可选值为：Org、Shop、MainShop。
		 * @param dataColumns 要查询的指标，多个指标用逗号隔开，例curr_day_count，curr_day_sale。若传递空值，则返回所有可选指标。
		 * @param userId 用户编号。当前登录人的用户编号。
		 * @param positionId 所属位置编号。用于过滤数据。
		 * @param positionType 位置类型。本地使用，若要传递给ASHX服务，则需要转换为文件类型。
		 * @param fileId 文件ID串，多个ID中间用逗号隔开，例WAND1001,WAND1002。若传递空值，则返回所有地点（可能是全国、广场、楼层、店铺等）的数据。
		 * @param resultHandler 成功的事件处理过程。event.result为StatisticsReportData。
		 * @param faultHandler 失败的时间处理过程
		 */
		function getStatisticsReportData(reportType:String, 
										 fileName:String,  fileIds:String, 
										 dataColumns:String, userId:String, 
										 positionId:String, positionType:int, 
										 fromDate:Date, toDate:Date,
										 resultHandler:Function = null, 
										 faultHandler:Function = null):void
		/**
		 * 获取位置路径。
		 * 
		 * @param positionId 位置编号。
		 * @param positionType 位置类型。
		 * @param resultHandler 成功的事件处理过程。event.result为ArrayCollection，它的每个项目都是一个PageInfo对象。
		 * @param faultHandler 失败的时间处理过程
		 */
		function getPositionPath(positionId:String, positionType:int,
								 resultHandler:Function, faultHandler:Function = null):void;
		
		/**
		 * 获取图表类型数组。
		 * 
		 * @param pageInfo 
		 * 
		 * @param resultHandler 成功的事件处理过程。event.result为ArrayCollection，它的每个项目都是一个StatisticsReportType对象。
		 * @param faultHandler 失败的时间处理过程
		 */
		function getStatisticsReportTypeList(pageInfo:PageInfo, 
											 resultHandler:Function, 
											 faultHandler:Function = null):void;
		
		/**
		 * 取得排行榜列表。
		 * @param resultHandler 成功的事件处理过程。event.result为ArrayCollection，它的每个项目都是排行榜的一条记录。
		 * @param faultHandler 失败的时间处理过程
		 */
		function getTopPositionList(id:String, resultHandler:Function, faultHandler:Function = null):void;
		/**
		 * 多维导航
		 * */
		function getNavigationList(id:String, resultHandler:Function, faultHandler:Function = null):void;
		/**
		 * 获取表格
		 * */
		function getCommonlyUsedReportList(id:String, resultHandler:Function, faultHandler:Function = null):void;
		
		/**
		 * 获取默认报表选项数据
		 * */
		function getDefaultReportItemData(name:String, resultHandler:Function, faultHandler:Function = null, isLoading:Boolean = true, removeLoading:Boolean = true):void;
		/**
		 * 获取页面切换按钮
		 */ 
		function getChangeButton(pageInfo:PageInfo, 
								 resultHandler:Function, 
								 faultHandler:Function = null):void;
		
		/**
		 * 查询报表数据
		 * @param url  访问的地址
		 * @param resname 文件类型  可选值为：Org、Shop、MainShop。
		 * @param ids 文件ID串，多个ID中间用逗号隔开，例WAND1001,WAND1002。若传递空值，则返回所有地点（可能是全国、广场、楼层、店铺等）的数据。
		 * @param columns 要查询的指标，多个指标用逗号隔开，例curr_day_count，curr_day_sale。若传递空值，则返回所有可选指标。
		 * */
		function queryReportData(url:String, resname:String, date:String, datetype:String, ids:String, columns:String, charttype:String, resultHandler:Function, faultHandler:Function = null, isLoading:Boolean = true, removeLoading:Boolean = true):void;
		
		function exportDataToExcel():void;
		/**
		 * 排名明细。
		 */
		function getReportListForStandard(resultHandler:Function, faultHandler:Function = null):void
	}
}